<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>角色管理</title>
		<link href="../../component/pear/css/pear.css" rel="stylesheet" />
	</head>
	<body class="pear-container">
		<div class="layui-card">
			<div class="layui-card-body">
				<form class="layui-form" action="">
					<div class="layui-form-item">
						<div class="layui-form-item layui-inline">
							<label class="layui-form-label">用户名</label>
							<div class="layui-input-inline">
								<input type="text" name="role_name" placeholder="" class="layui-input">
							</div>
						</div>
						<!-- <div class="layui-form-item layui-inline">
							<label class="layui-form-label">性别</label>
							<div class="layui-input-inline">
								<input type="text" name="realName" placeholder="" class="layui-input">
							</div>
						</div>
						<div class="layui-form-item layui-inline">
							<label class="layui-form-label">邮箱</label>
							<div class="layui-input-inline">
								<input type="text" name="realName" placeholder="" class="layui-input">
							</div>
						</div> -->
						<div class="layui-form-item layui-inline">
							<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="role-query">
								<i class="layui-icon layui-icon-search"></i>
								查询
							</button>
							<button type="reset" class="pear-btn pear-btn-md">
								<i class="layui-icon layui-icon-refresh"></i>
								重置
							</button>
						</div>
					</div>
				</form>
			</div>
		</div>
		<div class="layui-card">
			<div class="layui-card-body">
				<table id="data-table" lay-filter="data-table"></table>
			</div>
		</div>
		



		<script type="text/html" id="role-toolbar">
			<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
				<i class="layui-icon layui-icon-add-1"></i>
				新增
			</button>
			<button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
				<i class="layui-icon layui-icon-delete"></i>
				删除
			</button>
			<!-- <button class="pear-btn pear-btn-md" lay-event="recycle">
		        <i class="layui-icon layui-icon-delete"></i>
		        回收站
		    </button> -->
		</script>
		
		<script type="text/html" id="role-bar">
			<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>
			<button class="pear-btn pear-btn-warming pear-btn-sm" lay-event="permission"><i class="layui-icon layui-icon-vercode"></i></button>
			<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
		</script>
		
		<script type="text/html" id="role-status">
			<input type="checkbox" name="status" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="role-status"  {{ d.status== true ? 'checked' : '' }} />
		</script>



		<script src="../../component/layui/layui.js"></script>
		<script src="../../component/pear/pear.js"></script>
		<script src="../../lms/base64.js"></script>
		<!-- <script src="../../lms/md5.js"></script> -->
		<script src="../../lms/common.js"></script>
		<script src="../../lms/config.js"></script>
		<script>
			//鹰：
			if(!checkLogin()) {
				location.href = lms_config.base_path + "/login.html";
			}



		    layui.use(['table','form','jquery','common'],function () {
		        let table = layui.table;
		        let form = layui.form;
		        let common = layui.common;
		        let $ = layui.jquery;
		
		        let MODULE_PATH = "role/";
		
		        let cols = [
		            [
		                {type:'checkbox'},
		                {title: 'id', field: 'roleId', align:'center', sort: true, unresize: true,width: 60},
		                {title: '角色名', field: 'role_name', align:'center', width:100},
		                {title: '描述', field: 'description', align:'center', width: 100},
		                {title: '权限', field: 'rulesName', align:'center'},
		                {title: '启用', field: 'status', align:'center', width: 100, templet:'#role-status'},
		                {title: '操作', toolbar: '#role-bar', align:'center', width:150}
		            ]
		        ]
		

				
				window.render = function(where) {
					//console.log("window.render", where)
					$request({
						url: lms_config.api_url + "/adminapi/v1/setting/Role",
						type: 'GET',
						//contentType: 'application/json',
						data: where,
						//headers: {Authorization: getUserInfo()["token"]},
						dataType: 'json',
					}).then(function(ret) {
						for(let item in ret.data) {
							ret.data[item].roleId = ret.data[item].id;
							ret.data[item].roleCode = ret.data[item].id;
							//ret.data[item].roleName = ret.data[item].role_name;
							//ret.data[item].details = ret.data[item].description;
							//ret.data[item].enable = ret.data[item].status;
							//ret.data[item].createTime = null;
							//ret.data[item].createBy = null;
							//ret.data[item].updateTime = "";
							//ret.data[item].updateBy = null;
							//ret.data[item].remark = 1;
							//ret.data[item].checked = "";
						}
						
						table.render({
							elem: '#data-table',
							page: true ,
							cols: cols ,
							skin: 'line',
							toolbar: '#role-toolbar',
							defaultToolbar: [{
								title: '刷新',
								layEvent: 'refresh',
								icon: 'layui-icon-refresh',
							}, 'filter', 'print', 'exports'],

							data: ret.data,

							//url: lms_config.api_url + "/adminapi/v1/setting/Role",
							//headers: {Authorization: getUserInfo()["token"]},
							//parseData: function(ret){return ret;}, //ret 即为原始返回的数据

						});
					}).catch(function(ret) {
						layer.msg("出错[" + ret.status + "]：" + ret.responseText, {
							icon: 2,
							//icon: 5,
							time: 1000
						});

						//console.error(ret);
						// alert("出错" + ret.status + "：" + ret.responseText);
					});
				}
				window.render();

				
		
		        table.on('tool(data-table)', function(obj){
		            if(obj.event === 'remove'){
		                window.remove(obj);
		            } else if(obj.event === 'edit'){
		                window.edit(obj);
		            } else if(obj.event === 'permission'){
		                window.permission(obj);
		            }
		        });
		
		        table.on('toolbar(data-table)', function(obj){
		            if(obj.event === 'add'){
		                window.add();
		            } else if(obj.event === 'refresh'){
		                window.refresh();
		            } else if(obj.event === 'batchRemove'){
		                window.batchRemove(obj);
                    } else if (obj.event === 'recycle') {
                        window.recycle(obj);
                    }
		        });
		
		        form.on('submit(role-query)', function(data){
					window.render(data.field);
		            //table.reload('data-table',{where:data.field});

		            return false;
		        });
		
		        form.on('switch(role-status)', function(data){
		            //layer.tips(this.value + ' ' + this.name + '：'+ obj.elem.checked, obj.othis);
					
					var status = data.elem.checked ? 1 : 0;
					var id = this.value;
					var load = layer.load();
					$.ajax({
						url: lms_config.api_url + "/adminapi/v1/setting/Role/" + id,
						type: 'PUT',
						headers: {Authorization: getUserInfo()["token"]},
						//contentType: 'application/json',
						data: { status: status },
						dataType: 'json',
						
						success: function (ret) {
							layer.close(load);
							if (ret && ret.code == 0) {
								layer.msg(ret.msg, {
									icon: 1,
									time: 1500
								});
							} else {
								layer.msg(ret.msg, {
									icon: 2,
									//icon: 5,
									time: 1500
								}, function () {
									$(data.elem).prop('checked', !$(data.elem).prop('checked'));
									form.render();
								});
							}
						},
						error: function (ret) {
							console.error(ret);
							alert("出错" + ret.status + "：" + ret.responseText);
						}, //表示如果请求响应出现错误，会执行的回调函数
					});

					//console.log(data);
					//console.log(data.elem.checked);
		        });



				
				//弹出窗设置 自己设置弹出百分比
				function screen() {
					if (typeof width !== 'number' || width === 0) {
						width = $(window).width() * 0.8;
					}
					if (typeof height !== 'number' || height === 0) {
						height = $(window).height() - 20;
					}
					return [width + 'px', height + 'px'];
				}
				
		
		        window.add = function(){
		            layer.open({
		                type: 2,
		                title: '新增',
		                shade: 0.1,
		                //area: ['500px', '400px'],
                		area: screen(),
						content: MODULE_PATH + 'add.html?operation=add'
		            });
		        }
		
		        window.edit = function(obj){
		            layer.open({
		                type: 2,
		                title: '修改',
		                shade: 0.1,
		                //area: ['500px', '400px'],
                		area: screen(),
                		content: MODULE_PATH + 'add.html?operation=edit&id=' + obj.data.id +
                        '&role_name=' + encodeURI(encodeURI(obj.data.role_name)) +
                        '&description=' + (obj.data.description ? encodeURI(encodeURI(obj.data.description)) : '') +
                        '&rules=' + obj.data.rules
		            });
		        }
		
				window.permission = window.edit;
		        // window.permission = function(obj){
		        //     layer.open({
		        //         type: 2,
		        //         title: '授权',
		        //         shade: 0.1,
		        //         //area: ['320px', '400px'],
                // 		area: screen(),
                // 		content: MODULE_PATH + 'add.html?operation=edit&id=' + obj.data.id
		        //     });
		        // }
		
		        window.remove = function(obj){
		            layer.confirm('确定要删除该角色', {icon: 3, title:'提示'}, function(index){
		                layer.close(index);
		                let loading = layer.load();
		                $.ajax({
							url: lms_config.api_url + "/adminapi/v1/setting/Role/" + obj.data['id'],
							type: 'DELETE',
                    		headers: {Authorization: getUserInfo()["token"]},
                    		//contentType: 'application/json',
							//data: {"data": obj.data['id']},
		                    dataType:'json',

							success: function(ret) {
								layer.close(loading);
								if(ret && ret.code==0) {
									layer.msg(ret.msg, {
										icon: 1,
										time: 1000
									}, function() {
										obj.del();
									});
								}
								else {
									layer.msg(ret.msg, {
										icon: 2,
                                		//icon: 5,
										time: 1000
									});
								}
							},
							error: function (ret) {
								console.error(ret);
								alert("出错" + ret.status + "：" + ret.responseText);
							}, //表示如果请求响应出现错误，会执行的回调函数
		                })
		            });
		        }
		
		        window.batchRemove = function(obj){

					//方法1：直接获得所有选择的ID
					let checkIds = common.checkField(obj,'id');
					if (checkIds === "") {
						layer.msg("未选中数据", {
							icon: 3,
							time: 1000
						});
						return false;
					}
					
					//方法2：获得所有选择的项目及其所有属性
					/*
					let checkIds = '';
					let data = table.checkStatus(obj.config.id).data;
					if (data.length === 0) {
						layer.msg("未选中数据", {
							icon: 3,
							time: 1000
						});
						return false;
					}
					for (let i = 0; i < data.length; i++) {
						checkIds += data[i].id + ",";
					}
					checkIds = checkIds.substr(0, checkIds.length - 1);
					*/



		            layer.confirm('确定要删除这些用户', {icon: 3, title:'提示'}, function(index){
		                layer.close(index);
		                let loading = layer.load();
		                $.ajax({
							url: lms_config.api_url + "/adminapi/v1/setting/Role/" + checkIds.replace(',', '_'),
							type: 'DELETE',
                    		headers: {Authorization: getUserInfo()["token"]},
                    		//contentType: 'application/json',
							//data: {"data": checkIds},
		                    dataType:'json',
							
							success: function(ret) {
								layer.close(loading);
								if(ret && ret.code == 0) {
									layer.msg(ret.msg, {
										icon: 1,
										time: 1000
									}, function() {
										window.render();
										//table.reload('data-table');
									});
								} else {
									layer.msg(ret.msg, {
										icon: 2,
                                		//icon: 5,
										time: 1000
									});
								}
							},
							error: function (ret) {
								console.error(ret);
								alert("出错" + ret.status + "：" + ret.responseText);
							}, //表示如果请求响应出现错误，会执行的回调函数
		                })
		            });
		        }
		
                window.recycle = function() {
                    layer.open({
                        type: 2,
                        maxmin: true,
                        title: '回收站',
                        shade: 0.1,
                        area: screen(),
                        content: MODULE_PATH + 'recycle',
                        cancel: function () {
							window.render();
                            //table.reload('data-table');
                        }
                    });
                }

		        window.refresh = function() {
					window.render();
		            //table.reload('data-table');
					///top.location.reload();
					///parent.location.reload();
		        }
		    })
		</script>
	</body>
</html>
